<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>dtree 树形组件 dtree - layui 第三方组件平台</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="description" content="核心功能：异步加载、数据格式自定义、复选框、菜单栏、工具栏、iframe加载、下拉树、定制化换肤。"> <link rel="stylesheet" href="../../../other/t/font_24081_60slu02pimt.css" tppabs="https://at.alicdn.com/t/font_24081_60slu02pimt.css"><link rel="stylesheet" href="../../../res.layui.com/layui/dist/css/layui.css-t=111.css" tppabs="https://res.layui.com/layui/dist/css/layui.css?t=111"><link rel="stylesheet" href="../../../res.layui.com/static/css/fly/global.css-t=1116.css" tppabs="https://res.layui.com/static/css/fly/global.css?t=1116" charset="utf-8"><link rel="stylesheet" href="../../../res.layui.com/static/css/global.css-t=111.css" tppabs="https://res.layui.com/static/css/global.css?t=111" charset="utf-8"><script>;!function(){if(self !==parent){try {if(parent.location.host.indexOf('.layui.com') !==-1){return;} } catch(e){location.href ="https://www.baidu.com/";} } }();</script> <link rel="stylesheet" href="../../../res.layui.com/static/css/global.css-t=111.css" tppabs="https://res.layui.com/static/css/global.css?t=111" charset="utf-8"></head><body><div class="layui-header header header-extends" style="background-color: #24262F;"> <div class="layui-container"> <a class="logo" href="../../../www.layui.com/" tppabs="https://www.layui.com/"> <img src="../../../res.layui.com/static/images/layui/logo.png" tppabs="https://res.layui.com/static/images/layui/logo.png" alt="layui"> </a> <div class="layui-form component" lay-filter="LAY-site-header-component"></div> <ul class="layui-nav"> <li class="layui-nav-item layui-hide-xs"> <a href="../../../www.layui.com/" tppabs="https://www.layui.com/">框架</a> </li> <li class="layui-nav-item layui-hide-xs layui-this"> <a href="../index.htm" tppabs="https://fly.layui.com/extend/">扩展</a> </li> <li class="layui-nav-item"> <a href="javascript:;">周边</a> <dl class="layui-nav-child layui-nav-child-c"> <dd lay-unselect> <a href="../../../www.layui.com/alone.html" tppabs="https://www.layui.com/alone.html" target="_blank">独立组件</a> </dd> <dd class="layui-hide-sm layui-show-xs" lay-unselect> <a href="../index.htm" tppabs="https://fly.layui.com/extend/">扩展组件</a> <hr> </dd>  </dl> </li> <li class="layui-nav-item"> <a href="javascript:;">专区</a> <dl class="layui-nav-child layui-nav-child-c"> <dd lay-unselect> <a href="javascript:if(confirm(%27https://fly.layui.com/groups/list/layuiadmin/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://fly.layui.com/groups/list/layuiadmin/%27" tppabs="https://fly.layui.com/groups/list/layuiadmin/">layuiAdmin</a> <hr> </dd> <dd lay-unselect> <a href="javascript:if(confirm(%27https://fly.layui.com/groups/list/layim/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://fly.layui.com/groups/list/layim/%27" tppabs="https://fly.layui.com/groups/list/layim/" target="_blank">LayIM</a> </dd> </dl> </li> <li class="layui-nav-item"> <a class="iconfont icon-touxiang" href="javascript:if(confirm(%27https://fly.layui.com/user/login/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://fly.layui.com/user/login/%27" tppabs="https://fly.layui.com/user/login/"></a> </li> </ul> </div></div><!--[if lt IE 9]>  <script src="../../../other/html5shiv/r29/html5.min.js" tppabs="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>  <script src="../../../other/respond.js/1.4.2/respond.min.js" tppabs="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script><![endif]--> <div class="fly-extend-banner fly-extend-banner-sm"> <div class="layui-carousel" id="FLY-extend-banner" data-height="200px"> <div carousel-item> <div style="background-image: url(../../../other/upload/2018_8/168_1535373858670_8825.jpg)/*tpa=https://cdn.layui.com/upload/2018_8/168_1535373858670_8825.jpg*/"> <div style="background: rgba(0,0,0,.6)"></div> </div> </div> </div> <h1 class="fly-extend-banner-title">layui 第三方组件平台</h1> <div class="fly-extend-banner-release"> <a href="../index.htm" tppabs="https://fly.layui.com/extend/" class="layui-btn layui-btn-lg">返回首页</a> <a href="javascript:if(confirm(%27https://fly.layui.com/user/login/?redirect=%2Fextend%2Frelease%2F  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://fly.layui.com/user/login/?redirect=%2Fextend%2Frelease%2F%27" tppabs="https://fly.layui.com/extend/release/" class="layui-btn layui-btn-lg">发布组件</a> </div> </div><div class="fly-extend-detail layui-card"> <div class="layui-container"> <div class="fly-extend-list-header"> <h1 class="fly-extend-title layui-elip"> <a>dtree 树形组件</a> <span class="layui-badge layui-bg-green layui-hide-xs">dtree</span> </h1> <div class="fly-extend-list-info"> <a href="javascript:if(confirm(%27https://fly.layui.com/u/12661320  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://fly.layui.com/u/12661320%27" tppabs="https://fly.layui.com/u/12661320" target="_blank" class="fly-extend-list-user" title="发布者"> <cite class="layui-hide-xs">智慧**瓜</cite> <img src="../../../other/avatar/12661320.jpg-t=1542031135507.jpg" tppabs="https://cdn.layui.com/avatar/12661320.jpg?t=1542031135507" alt="智慧**瓜"> </a> </div> </div> <blockquote class="fly-extend-list-desc layui-elem-quote"> <p>核心功能：异步加载、数据格式自定义、复选框、菜单栏、工具栏、iframe加载、下拉树、定制化换肤。</p> </blockquote> <div class="fly-extend-list-bottom"> <span class="layui-inline">更新：2020-1-19 </span> <span class="layui-inline">创建：2018-11-9 </span> <div class="layui-btn-container layui-extend-doc-edit"> </div> </div> </div></div><div class="layui-container"> <div class="layui-row layui-col-space20"> <div class="layui-col-sm3 layui-col-md2"> <div class="layui-card"> <ul class="fly-extend-doc-nav" lay-filter="extend-doc-nav"> <li class="layui-this" lay-id="doc"> <a href="javascript:;"><i class="iconfont icon-wendang"></i> 文档</a> </li> <li lay-id="download"> <a href="javascript:;"><i class="iconfont icon-xiazai"></i> 下载</a> </li> <li lay-id=""> <a href="javascript:if(confirm(%27http://www.wisdomelon.com/DTreeHelper/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://www.wisdomelon.com/DTreeHelper/%27" tppabs="http://www.wisdomelon.com/DTreeHelper/" rel="nofollow" target="_blank"> <i class="iconfont icon-kaifashili"></i> 来源 </a> </li> </ul> </div> </div> <div class="layui-col-sm9 layui-col-md10"> <div class="layui-card fly-extend-doc layui-show"> <div class="layui-card-header"> <h3 class="layui-inline layui-this">文档</h3> </div> <div class="layui-card-body detail-body photos layui-text"> 文档：<br>组件功能较多，已整理出了专门的文档发布在独立的服务器上，<br>详细请看： <a href="javascript:if(confirm(%27http://www.wisdomelon.com/DTreeHelper/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://www.wisdomelon.com/DTreeHelper/%27" tppabs="http://www.wisdomelon.com/DTreeHelper/" target="_blank" rel="nofollow">http://www.wisdomelon.com/DTreeHelper/</a> （最好用Chrome浏览器打开）（点击左侧来源可直接查看）<br>问题讨论： <a href="javascript:if(confirm(%27https://fly.layui.com/jie/43868/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://fly.layui.com/jie/43868/%27" tppabs="https://fly.layui.com/jie/43868/" target="_blank">https://fly.layui.com/jie/43868/</a> <br>问题讨论： <a href="javascript:if(confirm(%27https://fly.layui.com/jie/52635/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://fly.layui.com/jie/52635/%27" tppabs="https://fly.layui.com/jie/52635/" target="_blank">https://fly.layui.com/jie/52635/</a> <br>文档源码：点击左侧下载，可以去gitee或github下载<br>QQ群：867324214（添加时请备注layui交流。）<br><hr>更新预告：<br>暂无<br><br><hr>版本说明(倒序，新的版本表示提供的zip压缩包有更新，请下载最新的哦)：<br>------------------------v2.5.7(2020/01/19)【优化】：------------------------<br>【修复】select模块修复：当设置默认值时，存在点击select面板后，默认值消失的问题。<br>【修复】select模块修复：带复选框的下拉树设置默认值无效的问题。<br>【修复】内置属性修复：修复response设置了checked和type映射却无效的问题<br>【新增】内置函数新增：fuzzySearch，模糊查询，搜索节点，保留父节点。<br>【优化】内置函数优化：setDisabledNodes，现支持传入单个数据、带分隔符的字符串、数组、二维数组。<br>【新增】内置函数新增：setDisabledNode，设置单个节点的禁用<br>【优化】内置函数优化：cancelDisabledNodes，现支持传入单个数据、带分隔符的字符串、数组、二维数组。<br>【新增】内置函数新增：cancelDisabledNode，设置单个节点的取消禁用<br>【优化】内置函数优化：getDisabledNodesParam，现支持传入单个数据、带分隔符的字符串、数组、二维数组。<br>【优化】内置函数优化：setHideNodes，现支持传入单个数据、带分隔符的字符串、数组、二维数组。<br>【新增】内置函数新增：setHideNode，设置单个节点的隐藏<br>【优化】内置函数优化：cancelHideNodes，现支持传入单个数据、带分隔符的字符串、数组、二维数组。<br>【新增】内置函数新增：cancelHideNode，设置单个节点的取消隐藏<br>【优化】内置函数优化：getHideNodesParam，现支持传入单个数据、带分隔符的字符串、数组、二维数组。<br>【优化】内置函数优化：chooseDataInit，现支持传入单个数据、带分隔符的字符串、数组、二维数组（多级复选框）。<br>【新增】基础方法新增：getCheckbarJsonArrParam，获取基于返回参数的树的复选框参数，选中数据横向存储<br>【新增】基础方法新增：beforeSend，异步加载发送ajax请求之前的回调<br>【新增】基础方法新增：serialize，序列化json对象<br>【优化】基础方法优化：success方法，新增一个入参，表示是否第一次渲染数据，并支持在增量加载时，加载子节点时也可以回调该方法。<br>【优化】基础方法优化：done方法，新增一个入参，表示是否第一次渲染数据，并支持在增量加载时，在加载子节点时也可以回调该方法。<br>【优化】内置方法优化：dataInit方法，仅支持一个节点改变背景色的优化。<br>【优化】内置方法优化：init方法，入参新增一个异步加载完成后的回调函数，内部使用。<br>【优化】内置方法优化：getChild方法，入参新增一个异步加载完成后的回调函数，内部使用。<br>【优化】异步加载优化：使用data加载，也会出现load效果。<br>【优化】toolbat模块优化：当设置dataFormat时，默认的增删改数据中会出现dataFormat配置的元素，优化之后仅获取文字。<br>【优化】select模块优化：自适应当前组件的位置，向上或向下展开树。<br>【新增】基础属性新增：asyncLoad，异步加载初始加载层级树组<br>【新增】基础属性新增：selectCardHeight，树面板的高度<br>【新增】内置方法新增：loadTreeInit，初始化加载树<br>【新增】内置方法新增：loadChildTreeInit，初始化加载子节点<br>【新增】内置方法新增：dataLoadTree，用data加载树<br>【新增】内置方法新增：asyncLoadTree，异步加载树<br><br>------------------------v2.5.6(2019/10/24)【新增】：------------------------<br>【修复】标签属性修复：ul标签上data-value属性设置无效的问题<br>【优化】数据格式:获取格式中的basicData和recordData将提前转化为JSON格式，不在需要手动转换。<br>【优化】基础方法优化：render，支持加载下拉树<br>【优化】基础方法优化：reload，支持重载下拉树<br>【新增】基础属性新增：bak，内置属性，备份Html。<br>【新增】事件监听：changeSelect，下拉树面板开闭状态改变后，触发事件。<br>【新增】内置方法新增：rollbackHtml，基于备份的Html数据回滚<br>【新增】内置方法新增：setDisabledAllNodes，设置全部节点为disabled<br>【新增】内置方法新增：reloadSelectSetting，重新设置下拉树的基本参数<br>【新增】内置方法新增：reloadSelectDom，重新渲染下拉树的Dom结构<br>【新增】内置方法新增：selectCheckboxVal，设置复选框模式中的下拉树的值<br>【新增】内置方法新增：getCheckbarJsonArrParam，获取基于返回参数的树的复选框参数数组<br>【新增】内置方法新增：checkAllNode，复选框全选<br>【新增】内置方法新增：cancelCheckedNode，取消全部复选框选中<br>【新增】内置方法新增：invertCheckedNode，反选复选框<br>【新增】内置方法新增：removeCheckedNode，删除选中节点<br><br>------------------------v2.5.5(2019/10/12)【新增】：------------------------<br>【修复】内置方法修复：partialRefreshEdit，支持修改parentId后及时返显到下挂节点<br>【优化】单页模式中树的缓存问题<br>【优化】基础属性优化，开启line时，toolbar的fixed显示不正常<br>【优化】基础属性优化，开启line时，div选中 悬停背景对齐<br>【优化】基础方法优化：success方法的放置位置，可以将不同的数据格式在success方法内做转换，或添加根节点。<br>【优化】iframe模块优化：将原来用iframe包住的属性提出，撤销iframe这一层。<br>【优化】内置属性优化：scroll属性更名为scroll。<br>【优化】内置方法优化：当异步加载出现异常时，以文字形式而非弹框形式提示。<br>【新增】标签属性新增：ul标签上新增data-value属性，用于指定下拉树的初始展示值<br>【新增】基础属性新增：width，设置树的宽度<br>【新增】基础属性新增：select，设置树模式为下拉树<br>【新增】基础属性新增：selectTips，设置下拉树时的输入框提示文字<br>【新增】基础属性新增：selectInputName，设置下拉树内部表单标签的name<br>【新增】基础属性新增：withCredentials，用于开启生成跨域的XHR对象，设置后可指定同源session，默认false。<br>【新增】基础方法新增：set，可以增加同一次引用中，dtree的公共属性指定，所有基础属性都可以指定。<br>【新增】基础方法新增：renderSelect，初始化下拉树<br>【新增】基础方法新增：selectVal，设置下拉树的初始展示值<br>【新增】内置方法新增：selectVal，设置下拉树的初始展示值<br>【新增】内置方法新增：selectSetting，设置下拉树的初始元素<br>【新增】内置方法新增：renderSelectDom，渲染下拉树的Dom结构<br>【新增】内置方法新增：clickNodeCheckbar，点击节点选中复选框<br>【更新】内置方法更新：getNoneDom方法，添加errText子方法，显示错误信息。<br><br>------------------------v2.5.4(2019/6/14)【修复】：------------------------<br>【修复】内置方法中，使用data方法获取值不到的问题。<br>【优化】基础属性优化：ficon，可以设置Array型数据，与icon的配置方式相同<br>【优化】基础属性优化：skin，其中设置layui看起来更像layui的风格，新增laySimple风格，遵从简约版layui树形菜单。<br>【优化】内置方法优化：涉及样式的一系列内置方法优化<br>【新增】基础属性新增：height，调整高度，与table用法一致<br>【新增】基础属性新增：response中新增ficonClass，可以指定一级图标样式。<br>【新增】内置方法新增：cancelNavThis，取消选中div。<br>【更新】内置方法更新：parseData：增加对ficonClass属性的解析<br>【更新】内置方法更新：changeCheck，可以通过传递参数的方式传递复选框dom。<br>【移除】基础属性移除：dot，移除一级图标小圆点的单独设置，改为在ficon中配置，与icon的配置方式相同<br>【移除】基础属性移除：firstIconArray，与nodeIconArray合并。<br><br>------------------------v2.5.0(2019/6/01)【适配】：------------------------<br>【适配】对layui2.5适配<br>【修复】内置属性修复，error方法，现在可以正确的获取参数列表中的参数，如无定义则默认打印textStatus。<br>【修复】内置属性修复，complete方法，现在可以正确的获取参数列表中的参数<br>【新增】内置属性新增：line，用于指定树线<br>【新增】内置方法新增：showLine：用于显示树线<br>【新增】内置方法新增：showLineLi：作用在单个LI显示树线<br><br>------------------------v2.5.0(2019/5/20)【大版本】：------------------------<br>【大改】数据格式:reponse中isLast属性更换为last属性。<br>【大改】数据格式:reponse中isChecked属性更换为checked属性。<br>【大改】数据格式:defaultRequest中isLeaf属性更换为leaf属性。<br>【大改】数据格式:defaultRequest中isChecked属性更换为checked属性。<br>【大改】内置属性:record开启后，原来记录节点的全部数据（排除children和basicData）改为只记录用户自定义的数据（同样排除children和basicData）<br>【修复】toolbar模块修复：自定义的toolbar的回调函数的第二个$div参数修复，现在可以取到值<br>【修复】toolbar模块修复：内置函数：changeTreeNodeEdit中的title未定义的问题。<br>【修复】menubar模块修复：将dtree放在form中，menubar的默认按钮单击之后会提交表单的问题。<br>【修复】iframe模块修复：配置了iframeDefaultRequest时，只会显示iframeDefaultRequest中的参数的问题。<br>【优化】toolbar模块优化：内置的三个按钮中的label均加上title提示<br>【优化】基础方法优化：render方法和reload方法中，如果树在当前页面中被加载过一次了，再次加载会从缓存中取出树，并将树上次点击的节点作为参数记录下载，现在优化为还是从缓存中取，但是会重置上次记录的参数。<br>【优化】内置函数优化：getLiItemDom 当parentId为0时组件自动判定为false从而使用内置parentId的问题。<br>【新增】基础属性新增：iconfont属性，用于定义使用图标数组或string<br>【新增】基础属性新增：iconfontStyle属性，用于自定义树的每个关键部位使用的图标<br>【新增】基础属性新增：accordion属性，用于开启手风琴模式<br>【新增】基础属性新增：contentType属性，用于可以显示配置发送信息至服务器时内容编码类型<br>【新增】基础属性新增：response属性中新增disabled，标识节点禁用。<br>【新增】基础属性新增：response属性中新增isHide，标识节点隐藏。<br>【新增】基础属性新增：formatter属性，用于对树展示节点的文字信息格式化处理。<br>【新增】基础属性新增：errDataShow属性，标识是否在递归数据出现错误后，显示错误信息。<br>【新增】基础属性新增：none，用于定于树初始化未加载节点时的提示文字。<br>【新增】基础属性新增：error：用于异步加载中出现异常时的用户自定义函数。<br>【新增】基础属性新增：errDataShow属性，标识是否在递归数据出现错误后，显示错误信息。<br>【新增】基础属性新增：drawable属性，用于开启拖拽。<br>【新增】基础方法新增：getParam： 获取指定节点选中值<br>【新增】基础方法新增：getAllParentParam： 获取指定节点的全部上级节点<br>【新增】基础方法新增：initNoAllCheck： 复选框半选状态初始化设置<br>【新增】基础方法新增：initAllCheck： 复选框选中状态初始化设置<br>【新增】基础方法新增：click：模拟单击事件<br>【新增】checkbar模块新增：checkbarData新增属性：&quot;halfChoose&quot;，用于记录选中和半选中的数据<br>【新增】menubar模块新增：menubar内置新增三个默认方法：checkAll：全选，unCheckAll：全不选，invertAll：反选<br>【新增】toolbar模块新增：toolbar内置新增两个默认方法：pulldown：展开当前节点下的全部节点，pullup：收缩当前节点下的全部节点<br>【新增】toolbar模块新增：toolbar新增属性：toolbarWay，工具栏显示方式，contextmenu:右键，follow:跟随节点，fixed:固定在节点右侧<br>【新增】toolbar模块新增：toolbarBtn中新增一系列的属性（id、placeholder、verify、defElem、readonly、disabled、filter）<br>【新增】toolbar模块新增：toolbarBtn中,optionsData支持使用function回调<br>【新增】内置属性新增：errNode属性，记录在渲染节点时有问题的数据。<br>【新增】内置属性新增：usefontStyle属性，用于最终指定树的每个关键部位使用的图标<br>【新增】内置方法新增：replaceDom：替换节点的dom值，或指定值。<br>【新增】内置方法新增：partialRefreshAdd：局部刷新树--当前节点新增子节点时<br>【新增】内置方法新增：partialRefreshEdit：局部刷新树--当前节点选中时<br>【新增】内置方法新增：partialRefreshDel：局部刷新树--当前节点选中被删除时<br>【新增】内置方法新增：ensureTheme：确认最终主题。<br>【新增】内置方法新增：useDefaultOrUserDefineFnodeStyle：赋值一级图标<br>【新增】内置方法新增：useDefaultOrUserDefineSnodeStyle：赋值二级图标<br>【新增】内置方法新增：useDefaultOrUserDefineCheckboxStyle：赋值复选框图标<br>【新增】内置方法新增：useDefaultOrUserDefineMenubarStyle：赋值菜单栏图标<br>【新增】内置方法新增：useDefaultOrUserDefineMenubarExtStyle：赋值扩展菜单栏图标<br>【新增】内置方法新增：useDefaultOrUserDefineToolbarStyle：赋值扩展菜单栏图标<br>【新增】内置方法新增：useDefaultOrUserDefineToolbarExtStyle：赋值扩展工具栏图标<br>【新增】内置方法新增：operateIcon： 设置图标的展开关闭，以及展开时/关闭时是最后一级图标的处理<br>【新增】内置方法新增：msgErrNode： 判断在数据加载时是否存在错误数据，并是否打印错误数据<br>【新增】内置方法新增：getParam： 获取指定节点选中值<br>【新增】内置方法新增：getAllParentParam： 获取指定节点的全部上级节点<br>【新增】内置方法新增：getNodeDom： 根据具体的id获取基于当前id的div以及对应的其他dom元素<br>【新增】内置方法新增：getNode： 获取指定节点Div<br>【新增】内置方法新增：accordionUL： 开启手风琴模式时对其他节点的处理<br>【新增】内置方法新增：setDisabledNodes： 设置节点为disabled<br>【新增】内置方法新增：cancelDisabledNodes：将节点的disabled取消<br>【新增】内置方法新增：getDisabledNodesParam： 获取指定disabled节点的值<br>【新增】内置方法新增：getAllDisabledNodesParam： 获取全部disabled节点的值<br>【新增】内置方法新增：setHideNodes： 设置节点为hide<br>【新增】内置方法新增：cancelHideNodes： 将节点的hide取消<br>【新增】内置方法新增：getHideNodesParam： 获取指定hide节点的值<br>【新增】内置方法新增：getAllHideNodesParam： 获取全部hide节点的值<br>【新增】内置方法新增：toolbarHide：隐藏toolbar<br>【新增】内置方法新增：toolbarMethod：toolbar内置方法<br>【新增】内置方法新增：toolbarListener：toolbar内置监听<br>【新增】内置方法新增：getNowNodeOrNull：获取当前选中div，没有选中则为null<br>【新增】内置方法新增：navThis：选中div<br>【新增】内置方法新增：getNoneDom：当无节点数据时显示dom信息<br>【新增】内置方法新增：dynamicToolbarDom：在节点后动态绑定fixed和follow条件的工具栏<br>【更新】内置方法更新：setToolbarDom，设置工具栏按钮，现在区别开来哪种toolbar的创建方式<br>【更新】内置方法更新：changeTreeNodeAdd新增一个回传参数：refresh，用于新增完成后，局部刷新<br>【更新】内置方法更新：parseData新增一个回传参数：fmtTitle，用于获取formatter标记过的内容，原来的title函数只获取原始title信息<br><br>v2.4.5_finally(2018/12/22)【修复】：<br>1.【修复】单页应用中，未开始toolbar导致body上的所有事件失效。<br>2.【优化】更新dist文件夹中的dtree压缩<br>3.【优化】toolbar模块优化:新增节点时，当开启了record参数时不会将参数新增到节点上的问题。<br><br>v2.4.5_finally(2018/12/21)【优化】：<br>1.【优化】menubar模块优化:点击收缩时，当前页的所有树都收缩的问题。<br>2.【优化】menubar模块优化:点击删除复选框时，展开和收缩节点会报错，现在改为删除的节点如果有子集的话，子集会一并删除，但是回调函数中只会提供你勾中的数据。<br>3.【优化】基础方法优化:dataInit方法回显数据时，当前选中的数据无法被获取到的问题。<br>4.【优化】基础方法优化:parseData方法的basicData()方法，basicData如果未指定，前端的该项属性无数据，而不是&quot;&quot;<br>5.【优化】异步属性优化:使用data加载时，可以允许指定的data为[]。<br>6.【优化】异步属性优化:使用data加载时，现在也有success和done的回调<br>7.【新增】checkbar模块新增：checkbarType新增属性：&quot;only&quot;，用于模拟单选，只能同时选择一个复选框。<br>8.【新增】异步回调方法新增:新增success回调，用于数据加载完毕后的回调，在done之前执行<br>9.【新增】异步属性新增:filterRequest属性，用于过滤树自动发起的请求中你不需要的参数。<br>10.【新增】基础属性新增：record属性，开启数据记录模式，用于记录用户提供的JSON数据串中，指定当前节点的JSON数据（排除basicData字段和children字段）<br>11.【新增】基础属性新增：load属性，是否开启加载遮罩。<br>12.【新增】内置函数新增：getFilterRequestParam，获取filterParam过滤后的requestParam<br><br>v2.4.5_finally_beta(2018/12/07)【大改】：<br>0.【新增】提供的内容中新增dist/dtree.js压缩js文件。<br>1.【大改】css：css样式均加上dtree前缀。<br>2.【大改】图标：iconfont更改为dtreefont。<br>3.【大改】事件监听：图标点击事件返回的参数改为一个JSON对象，具体查看基础文档的事件监听。<br>4.【大改】事件监听：节点点击事件返回的参数改为一个JSON对象，具体查看基础文档的事件监听。<br>5.【大改】事件监听：节点双击事件返回的参数改为一个JSON对象，具体查看基础文档的事件监听。<br>6.【大改】事件监听：复选框点击事件返回的参数改为一个JSON对象，具体查看基础文档的事件监听。<br>7.【大改】事件监听：iframe加载完毕事件返回的参数改为一个JSON对象，具体查看基础文档的事件监听。<br>8.【新增】基础方法新增：getChildParam,获取全部下级节点<br>9.【新增】menubar模块新增：menubarTips属性,用于指定menubar的依附方式。<br>10.【新增】toolbar模块新增：toolbarFun新增loadToolbarBefore函数，用于呈现右键菜单之前调用的函数。<br>11.【新增】内置函数新增：initTreePlus 用于初始化菜单栏和工具栏的div。<br>12.【新增】内置函数新增：openTreePlus 用于开启工具栏和菜单栏。<br>13.【新增】内置函数新增：getMenubarDom 用于获取菜单栏。<br>14.【新增】内置函数新增：getExtMenubarDom 用于获取扩展菜单栏。<br>15.【新增】内置函数新增：getMenubarToolDom 用于获取依附在工具栏的菜单栏。<br>16.【新增】内置函数新增：getExtMenubarToolDom 用于获取依附在工具栏的扩展菜单栏。<br>17.【新增】内置函数新增：menubarMethod 用于menubar内置调用方法。<br>17.【新增】内置函数新增：menubarListener 用于menubar内置监听。<br>18.【新增】内置函数新增：setToolbarDom 用于设置工具栏按钮。<br>19.【新增】内置函数新增：unbindBrowserEvent 用于解绑浏览器事件。<br>19.【新增】内置属性新增：response属性中新增spread。<br>20.【优化】优化了图标显示。<br>21.【优化】toolbar模块:单页应用中，右键菜单的显示位置问题。<br>22.【优化】menubar模块:在开启了toolbar模块时按钮点击失效的问题。<br>23.【优化】iframe模块:iframeuUrl指定了&quot;?&quot;时，实际发送的url会出现两个&quot;?&quot;的问题。<br>23.【优化】数据格式:默认数据格式中非必须指定isLast属性，移除level属性的作用。<br>24.【修复】数据格式:在开启了list风格参数时，修复必须指定isLast返回的问题和设置initLevel无效的问题。<br>25.【修复】toolbar模块:新增节点返回json格式后显示数据未定义的问题。<br>26.【移除】内置函数移除：refreshTree，现放置在menubarMethod方法中。<br>27.【移除】内置函数移除：openAllNode，现放置在menubarMethod方法中。<br>28.【移除】内置函数移除：closeAllNode，现放置在menubarMethod方法中。<br>28.【移除】内置函数移除：loadChildTree。<br>29.【移除】内置函数移除：openMenubar。<br>30.【移除】内置函数移除：openToolbar。<br>31.【移除】内置属性移除：level。<br>32.【移除】内置属性移除：response属性中移除level。<br><br>v2.4.5(2018/11/30)【修复】：<br>1.【修复】基础方法修复：dataInit方法的返回数据异常。<br>2.【修复】基础方法修复：render函数自动识别是否重载树，代码再次修复(针对单页应用)。<br>3.【新增】内置函数新增：refreshTree,用于刷新树。<br>4.【新增】内置函数新增：parseData 用于解析数据。<br>5.【优化】checkbar模块：checkArr属性支持传递字符串。 <br>6.【修复】toolbar模块:拼接新增节点内容的代码异常 。<br><br>v2.4.5(2018/11/25)【修复】：<br>1.【修复】render函数自动识别是否重载树，代码修复。<br>2.【修复】内部代码bug。<br>3.【优化】修改了右键菜单弹出的动画效果。<br><br>v2.4.5(2018/11/25)【优化】：<br>1.【优化】优化了图标显示。<br>2.【新增】内置图标新增。<br>3.【新增】ficon属性：用于用户自定义一级图标<br>4.【新增】firstIconArray属性：用于用户自定义扩展一级图标<br>5.【新增】异步加载模块添加headers属性。<br>6.【新增】toolbar模块:新增属性toolbarExt，用于自定义扩展工具栏右键菜单按钮<br>7.【新增】checkbar模块:新增checkbarFun中的回调方法：chooseBefore，用于复选框点击前回调<br>8.【新增】内置函数新增:changeCheck,用于改变复选框状态。<br>9.【优化】render函数自动识别是否重载树。<br>10.【优化】内部代码优化。<br>11.【更新】更新了帮助文档。<br><br>v2.4.5(2018/11/23)【修复】：<br>1.【修复】toolbar模块点击删除按钮时，控制台报错。<br>2.【修复】配置了dot:false时，toolbar模块新增节点后一级图标不显示的问题。<br>3.【修复】内置函数优化：initNoAllCheck，修复了显示bug<br>4.【新增】内置函数新增：initAllCheck，复选框选中状态初始化设置<br>5.【新增】内置函数新增：checkStatus，设置复选框选中/未选中/半选<br>6.【优化】toolbar模块：点击删除时，当删除了某个节点下的最后一个子节点，那该节点也会改变样式变成叶子节点。<br>7.【优化】toolbar模块:addTreeNode方法优化，ajax请求不限于同步，方法无需返回<br>8.【新增】内置函数新增：changeTreeNodeAdd，新增节点后改变节点内容<br>9.【优化】toolbar模块:editTreeNode方法优化，ajax请求不限于同步，方法无需返回<br>10.【新增】内置函数新增：changeTreeNodeEdit，编辑节点后改变节点内容<br>11.【优化】toolbar模块:delTreeNode方法优化，ajax请求不限于同步，方法无需返回<br>12.【新增】内置函数新增：changeTreeNodeDel，删除节点后改变节点内容<br>13.【优化】toolbar模块:editTreeLoad方法优化，ajax请求不限于同步，方法无需返回<br>14.【新增】内置函数新增：changeTreeNodeDone，编辑页打开后显示编辑页内容<br>15.【更新】更新了帮助文档<br><br>v2.4.5(2018/11/22)【修复】【新增】：<br>1.【修复】树重载时，使用data属性会造成数据重复加载问题。<br>2.【修复】输出参数的字段，spared修改为spread（之前单词拼错了。。。。）。<br>3.【新增】toolbar模块中新增属性：toolbarStyle，用于自定义toolbar的显示文字，弹框大小。<br>4.【移除】基础属性中移除了addIndex属性。<br>5.【新增】skin属性：用于用户自定义主题。<br><br>v2.4.5(2018/11/21)【修复】【新增】：<br>1.【修复】使用dataFormat属性时，直接使用data属性配置节点内容失效的问题。<br>2.【修复】parentId为null导致节点数据加载失效的问题。<br>3.【优化】反选节点时将选中哪一级的节点展开，单选和多选均生效。<br>4.【新增】dot属性，用于用户自定义一级图标中的小圆点是否显示。<br><br>v2.4.5(2018/11/21)【优化】【新增】：<br>1.【新增】toolbar取消按钮的显示，开始绑定右键点击事件。<br>2.【新增】toolbar模块新增一个属性：toolbarScroll 用于绑定树的上级div容器，让树可以显示滚动条的div容器，右键菜单绑定必填项。<br>3.【新增】toolbar模块新增编辑页数据回显功能。<br>4.【新增】树加载完毕后的回调函数<br>5.【新增】dataStyle属性，用于用户配置layui通用的json数据风格<br>6.【新增】dataFormat属性，用于用户自定义data中的数据格式（即支持传入一个大的list<br>7.更新文档示例。<br><br>v2.4.5(2018/11/09)【优化】：<br>1.【优化】更新了图标库，精简了图标(60个)<br><br>v2.4.5(2018/11/09)【初始】：<br>1.【初始】基本树形展示，无限级，支持自定义修改树的展示图标<br>2.【初始】支持异步/同步数据加载，支持静态数据加载，支持数据缓存<br>3.【初始】支持自定义返回json格式，支持自定义异步/同步加载参数<br>4.【初始】支持复选框，1-N级，支持复选框的四种选中形式，支持记录复选框选中/更改数据的回调<br>5.【初始】支持工具栏，即可直接修改当前树节点，新增/ 编辑/删除等<br>6.【初始】支持菜单栏，即可直接对树进行全部节点展开/收缩、删除全部选中节点、刷新树、搜索树等<br>7.【初始】支持加载iframe，即点击树节点时，可以带上一个访问iframe的url，这个设计在左树右内容风格的页面极为有用<br>8.【初始】支持数据回调，单击节点回调、双击节点回调、复选框选中回调、iframe加载完毕回调等<br>9.【初始】支持数据获取，即获取当前选中节点数据，当前选中复选框节点数据等<br>10.【初始】支持数据反显，即加载树之后将需要反显的节点高亮显示或选中<br><br><hr>目录结构：<br>├─layui /layui 基础框架<br>│─layui_exts //存放第三方组件的目录<br> └─dist/ 组件的压缩后的js存在的地方<br> └─dtree/ 组件模块名<br> ├─dtree.js //组件核心 JS <br> ├─font //组件核心图标库，库中携带了dtreefont.css文件，在使用树时需要引入该文件<br> └─dtree.css //组件 CSS 库<br><hr>使用方式：<br>将压缩包解压后放置在项目的任意路径，根据layui引入模块的方式将dtree.js文件引入即可使用；<br>在页面中，使用组件则需要引入两个class： <br>layui_exts/dtree/dtree.css <br>layui_exts/dtree/font/dtreefont.css<br><br><hr>简单url加载示例（更多示例请查看文档）：<br>// html代码<br><pre>&lt;ul id=&quot;demoTree1&quot; class=&quot;dtree&quot; data-id=&quot;0&quot;&gt;&lt;/ul&gt;</pre>// js代码<br><pre>layui.config({<br>  base: &#39;../js/layui_exts/dtree/&#39; //配置 layui 第三方扩展组件存放的基础目录<br>}).extend({<br>  dtree: &#39;dtree&#39; //定义该组件模块名<br>}).use([&#39;element&#39;,&#39;layer&#39;, &#39;dtree&#39;], function(){<br>	var layer = layui.layer,<br>	    dtree = layui.dtree,<br>	    $ = layui.$;<br>		<br>		<br>	dtree.render({<br>	  elem: &quot;#demoTree1&quot;,  //绑定元素<br>	  url: &quot;../json/case/demoTree1.json&quot;  //异步接口<br>	});<br><br>        //单击节点 监听事件<br>        dtree.on(&quot;node(&#39;demoTree1&#39;)&quot; ,function(param){<br>	  layer.msg(JSON.stringify(param));<br>	});<br>});</pre>//部分结果展示<br><img src="../../../other/upload/2018_11/12661320_1541942883078_67019.png" tppabs="https://cdn.layui.com/upload/2018_11/12661320_1541942883078_67019.png"> <br><br>// 异步数据示例，使用url属性时返回内容，其中<br> //checkArr：该字段是作为开启复选框后的必填项，如无，则复选框不显示<br>//basicData： 该字段是作为用户自定义节点内容时的字段，如不需要自定义节点内容的话，可以无该字段<br><pre>{<br>	&quot;status&quot;:{&quot;code&quot;:200,&quot;message&quot;:&quot;操作成功&quot;},<br>	&quot;data&quot;:[{<br>		&quot;id&quot;:&quot;001&quot;,<br>		&quot;title&quot;: &quot;湖南省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],  <br>                &quot;basicData&quot;: {&quot;data1&quot;: &quot;自定义数据111&quot;, &quot;data2&quot;: &quot;自定义数据222&quot;, &quot;data3&quot;: &quot;自定义&#39;我带了单引号&#39;333&quot;},<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;001001&quot;,<br>			&quot;title&quot;: &quot;长沙市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;001002&quot;,<br>			&quot;title&quot;: &quot;株洲市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;001003&quot;,<br>			&quot;title&quot;: &quot;湘潭市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;001004&quot;,<br>			&quot;title&quot;: &quot;衡阳市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;001005&quot;,<br>			&quot;title&quot;: &quot;郴州市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		}]<br>	},{<br>		&quot;id&quot;:&quot;002&quot;,<br>		&quot;title&quot;: &quot;湖北省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;002001&quot;,<br>			&quot;title&quot;: &quot;武汉市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;002002&quot;,<br>			&quot;title&quot;: &quot;黄冈市&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;002&quot;,<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;002003&quot;,<br>			&quot;title&quot;: &quot;潜江市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;002&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;002004&quot;,<br>			&quot;title&quot;: &quot;荆州市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;002&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;002005&quot;,<br>			&quot;title&quot;: &quot;襄阳市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;002&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;				<br>		}]<br>	},{<br>		&quot;id&quot;:&quot;003&quot;,<br>		&quot;title&quot;: &quot;广东省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;003001&quot;,<br>			&quot;title&quot;: &quot;广州市&quot;,<br>			&quot;isLast&quot;:false,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;level&quot;: &quot;2&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;children&quot;:[{<br>				&quot;id&quot;:&quot;003001001&quot;,<br>				&quot;title&quot;: &quot;天河区&quot;,<br>				&quot;isLast&quot;:true,<br>				&quot;parentId&quot;: &quot;003001&quot;,<br>				&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>				&quot;level&quot;: &quot;3&quot;<br>			},{<br>				&quot;id&quot;:&quot;003001002&quot;,<br>				&quot;title&quot;: &quot;花都区&quot;,<br>				&quot;isLast&quot;:true,<br>				&quot;parentId&quot;: &quot;003001&quot;,<br>				&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>				&quot;level&quot;: &quot;3&quot;<br>			}]<br>		},{<br>			&quot;id&quot;:&quot;003002&quot;,<br>			&quot;title&quot;: &quot;深圳市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;003003&quot;,<br>			&quot;title&quot;: &quot;中山市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;003004&quot;,<br>			&quot;title&quot;: &quot;东莞市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;003005&quot;,<br>			&quot;title&quot;: &quot;珠海市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;003006&quot;,<br>			&quot;title&quot;: &quot;韶关市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		}]<br>	},{<br>		&quot;id&quot;:&quot;004&quot;,<br>		&quot;title&quot;: &quot;浙江省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;004001&quot;,<br>			&quot;title&quot;: &quot;杭州市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;004002&quot;,<br>			&quot;title&quot;: &quot;温州市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;004003&quot;,<br>			&quot;title&quot;: &quot;绍兴市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;004004&quot;,<br>			&quot;title&quot;: &quot;金华市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;004005&quot;,<br>			&quot;title&quot;: &quot;义乌市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		}]<br>	},{<br>		&quot;id&quot;:&quot;005&quot;,<br>		&quot;title&quot;: &quot;福建省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;005001&quot;,<br>			&quot;title&quot;: &quot;厦门市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;005&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		}]<br>	}]<br>}</pre><hr>简单data加载示例（更多示例请查看文档）：<br>// html代码<br><pre>&lt;ul id=&quot;demoTree1&quot; class=&quot;dtree&quot; data-id=&quot;0&quot;&gt;&lt;/ul&gt;</pre>// js代码<br><pre>layui.config({<br>  base: &#39;../js/layui_exts/dtree&#39; //配置 layui 第三方扩展组件存放的基础目录<br>}).extend({<br>  dtree: &#39;dtree&#39; //定义该组件模块名<br>}).use([&#39;element&#39;,&#39;layer&#39;, &#39;dtree&#39;], function(){<br>	var layer = layui.layer,<br>	    dtree = layui.dtree,<br>	    $ = layui.$;<br>		<br>		<br>	dtree.render({<br>	  elem: &quot;#demoTree1&quot;,  //绑定元素<br>	  data: demoData  //数据<br>	});<br><br>        //单击节点 监听事件<br>        dtree.on(&quot;node(&#39;demoTree1&#39;)&quot; ,function(param){<br>	  layer.msg(JSON.stringify(param));<br>	});<br>});</pre>//部分结果展示<br><img src="../../../other/upload/2018_11/12661320_1541942883078_67019.png" tppabs="https://cdn.layui.com/upload/2018_11/12661320_1541942883078_67019.png"> <br><br>// data数据示例，其中<br> //checkArr：该字段是作为开启复选框后的必填项，如无，则复选框不显示<br>//basicData： 该字段是作为用户自定义节点内容时的字段，如不需要自定义节点内容的话，可以无该字段<br><pre>var demoData  =  [{<br>		&quot;id&quot;:&quot;001&quot;,<br>		&quot;title&quot;: &quot;湖南省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],  <br>                &quot;basicData&quot;: {&quot;data1&quot;: &quot;自定义数据111&quot;, &quot;data2&quot;: &quot;自定义数据222&quot;, &quot;data3&quot;: &quot;自定义&#39;我带了单引号&#39;333&quot;},<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;001001&quot;,<br>			&quot;title&quot;: &quot;长沙市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;001002&quot;,<br>			&quot;title&quot;: &quot;株洲市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;001003&quot;,<br>			&quot;title&quot;: &quot;湘潭市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;001004&quot;,<br>			&quot;title&quot;: &quot;衡阳市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;001005&quot;,<br>			&quot;title&quot;: &quot;郴州市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;001&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		}]<br>	},{<br>		&quot;id&quot;:&quot;002&quot;,<br>		&quot;title&quot;: &quot;湖北省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;002001&quot;,<br>			&quot;title&quot;: &quot;武汉市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;002002&quot;,<br>			&quot;title&quot;: &quot;黄冈市&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;002&quot;,<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;002003&quot;,<br>			&quot;title&quot;: &quot;潜江市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;002&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;002004&quot;,<br>			&quot;title&quot;: &quot;荆州市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;002&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;002005&quot;,<br>			&quot;title&quot;: &quot;襄阳市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;002&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;				<br>		}]<br>	},{<br>		&quot;id&quot;:&quot;003&quot;,<br>		&quot;title&quot;: &quot;广东省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;003001&quot;,<br>			&quot;title&quot;: &quot;广州市&quot;,<br>			&quot;isLast&quot;:false,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;level&quot;: &quot;2&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;children&quot;:[{<br>				&quot;id&quot;:&quot;003001001&quot;,<br>				&quot;title&quot;: &quot;天河区&quot;,<br>				&quot;isLast&quot;:true,<br>				&quot;parentId&quot;: &quot;003001&quot;,<br>				&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>				&quot;level&quot;: &quot;3&quot;<br>			},{<br>				&quot;id&quot;:&quot;003001002&quot;,<br>				&quot;title&quot;: &quot;花都区&quot;,<br>				&quot;isLast&quot;:true,<br>				&quot;parentId&quot;: &quot;003001&quot;,<br>				&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>				&quot;level&quot;: &quot;3&quot;<br>			}]<br>		},{<br>			&quot;id&quot;:&quot;003002&quot;,<br>			&quot;title&quot;: &quot;深圳市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;003003&quot;,<br>			&quot;title&quot;: &quot;中山市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;003004&quot;,<br>			&quot;title&quot;: &quot;东莞市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;003005&quot;,<br>			&quot;title&quot;: &quot;珠海市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;003006&quot;,<br>			&quot;title&quot;: &quot;韶关市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;003&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		}]<br>	},{<br>		&quot;id&quot;:&quot;004&quot;,<br>		&quot;title&quot;: &quot;浙江省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;004001&quot;,<br>			&quot;title&quot;: &quot;杭州市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;004002&quot;,<br>			&quot;title&quot;: &quot;温州市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;004003&quot;,<br>			&quot;title&quot;: &quot;绍兴市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;004004&quot;,<br>			&quot;title&quot;: &quot;金华市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		},{<br>			&quot;id&quot;:&quot;004005&quot;,<br>			&quot;title&quot;: &quot;义乌市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;004&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		}]<br>	},{<br>		&quot;id&quot;:&quot;005&quot;,<br>		&quot;title&quot;: &quot;福建省&quot;,<br>		&quot;isLast&quot;: false,<br>		&quot;parentId&quot;: &quot;0&quot;,<br>		&quot;level&quot;: &quot;1&quot;,<br>		&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>		&quot;children&quot;:[{<br>			&quot;id&quot;:&quot;005001&quot;,<br>			&quot;title&quot;: &quot;厦门市&quot;,<br>			&quot;isLast&quot;:true,<br>			&quot;parentId&quot;: &quot;005&quot;,<br>			&quot;checkArr&quot;: [{&quot;type&quot;: &quot;0&quot;, &quot;isChecked&quot;: &quot;0&quot;}],<br>			&quot;level&quot;: &quot;2&quot;<br>		}]<br>	}]；</pre> </div> </div> <div class="layui-card fly-extend-doc"> <div class="layui-card-header"> <h3 class="layui-inline layui-this">下载</h3> </div> <div class="layui-card-body detail-body layui-text"> <div class="layui-btn-container"> <a href="javascript:if(confirm(%27https://cdn.layui.com/extend/12661320_1571934091510_23443.zip  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://cdn.layui.com/extend/12661320_1571934091510_23443.zip%27" tppabs="https://cdn.layui.com/extend/12661320_1571934091510_23443.zip" target="_blank" class="layui-btn layui-btn-lg layui-btn-primary"> 立即下载 </a> <a href="javascript:if(confirm(%27https://gitee.com/miniwatermelon/DTreeHelper.git  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://gitee.com/miniwatermelon/DTreeHelper.git%27" tppabs="https://gitee.com/miniwatermelon/DTreeHelper.git" target="_blank" class="layui-btn layui-btn-lg layui-btn-primary layui-border-red"> 去码云下载 </a> <a href="javascript:if(confirm(%27https://github.com/mini-watermelon/DTreeHelper.git  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://github.com/mini-watermelon/DTreeHelper.git%27" tppabs="https://github.com/mini-watermelon/DTreeHelper.git" target="_blank" class="layui-btn layui-btn-lg layui-btn-primary layui-border-black"> 去 GitHub 下载 </a> <blockquote class="layui-elem-quote"> 该扩展组件由第三方用户主动投递，并由其自身进行维护，本站仅做收集。 </blockquote> </div> </div> </div> </div> </div></div><div class="fly-footer"> <p>Copyright &copy; 2021 <a href="javascript:if(confirm(%27https://fly.layui.com/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://fly.layui.com/%27" tppabs="https://fly.layui.com/">layui.com</a> MIT Licensed</p> <p> <a href="javascript:if(confirm(%27https://fly.layui.com/about/disclaimer.html  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://fly.layui.com/about/disclaimer.html%27" tppabs="https://fly.layui.com/about/disclaimer.html" target="_blank">免责声明</a> <a href="javascript:if(confirm(%27https://github.com/sentsin/layui/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://github.com/sentsin/layui/%27" tppabs="https://github.com/sentsin/layui/" target="_blank" rel="nofollow">GitHub</a> <a href="javascript:if(confirm(%27https://gitee.com/sentsin/layui  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27https://gitee.com/sentsin/layui%27" tppabs="https://gitee.com/sentsin/layui" target="_blank" rel="nofollow">Gitee</a> <a href="javascript:if(confirm(%27http://fly.layui.com/jie/2461/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://fly.layui.com/jie/2461/%27" tppabs="http://fly.layui.com/jie/2461/" target="_blank">公众号</a> <a target="_blank" href="javascript:if(confirm(%27http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=36010902000274  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=36010902000274%27" tppabs="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=36010902000274" rel="nofollow"> <img src="../../../other/upload/2021_8/168_1628847893037_87773.png" tppabs="https://cdn.layui.com/upload/2021_8/168_1628847893037_87773.png"> 公网安备 00000000000000号 </a> <a href="javascript:if(confirm(%27http://beian.miit.gov.cn/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://beian.miit.gov.cn/%27" tppabs="http://beian.miit.gov.cn/" target="_blank" rel="nofollow">ICP备00000000号</a> </p> <div class="fly-union"> <p style="display: block; margin-bottom: 10px;"><span>感谢以下平台提供云加速支持</span></div><script src="../../../res.layui.com/layui/dist/layui.js-t=111.js" tppabs="https://res.layui.com/layui/dist/layui.js?t=111"></script><script>layui.cache.page ='extends';layui.cache.user ={username:'游客' ,uid:-1 ,avatar:'../../../res.layui.com/static/images/fly/avatar/default.png'/*tpa=https://res.layui.com/static/images/fly/avatar/default.png*/ ,experience:0 ,sum:0 ,vip:0 ,sex:''};layui.config({version:"111"}).extend({'fly':'//res.layui.com/static/lay/modules/fly/index'}).use('fly');</script> </body></html>